package gui.logado.minhaconta;

import conexao.Http;
import conexao.HttpData;
import conexao.HttpListener;
import java.io.DataInputStream;
import javax.microedition.lcdui.*;
import recados.Recados;

public class MeuPerfil extends Form implements CommandListener, HttpListener {

    private final ChoiceGroup sexo;
    private final Command cmdVoltar;
    private final Command cmdAlterar;
    private final TextField idade;
    private final ChoiceGroup dia;
    private final ChoiceGroup mes;

    public MeuPerfil() {
        super("Meu Perfil");

        sexo = new ChoiceGroup("Sexo:", Choice.EXCLUSIVE);
        sexo.append("Masculino", null);
        sexo.append("Feminino", null);
        append(sexo);

        append("Aniversário:");

        String[] dias = new String[]{"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"};
        String[] meses = new String[]{"Janeriro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"};

        dia = new ChoiceGroup("Dia:", Choice.POPUP, dias, null);
        mes = new ChoiceGroup("Mes:", Choice.POPUP, meses, null);

        append(dia);

        append(mes);

        idade = new TextField("Idade:", null, 2, TextField.NUMERIC);
        append(idade);

        cmdVoltar = new Command("Voltar", Command.BACK, 0);
        cmdAlterar = new Command("Alterar", Command.OK, 1);

        addCommand(cmdVoltar);
        addCommand(cmdAlterar);

        setCommandListener(this);
    }

    public void commandAction(Command c, Displayable d) {
        if (c == cmdVoltar) {
            Recados.setCurrent(Recados.getInstance().getAvancado());
        } else if (c == cmdAlterar) {

            String data = dia.getString(mes.getSelectedIndex()) + " de " + mes.getString(mes.getSelectedIndex());

            Http http = new Http("Editar Perfil");
            http.setListener(this);
            HttpData dados = new HttpData();
            http.setHttpData(dados);

            dados.setPagina("/editar_perfil.php");

            dados.put("nome", Recados.getInstance().getLoginConfig().getNome());
            dados.put("senha", Recados.getInstance().getLoginConfig().getSenha());

            switch (sexo.getSelectedIndex()) {
                case 0:
                    dados.put("sexo", "Masculino");
                    break;
                case 1:
                    dados.put("sexo", "Feminino");
                    break;
            }

            dados.put("niver", data);
            dados.put("idade", idade.getString());

            Recados.setCurrent(http);

            http.doPost(false);
        }
    }

    public void requisicaoConcluida(DataInputStream in) {
        String verifica = Http.readLine(in);

        if (verifica.indexOf("erro") > -1) {
            int num_erros = Integer.parseInt(verifica.substring(verifica.indexOf('-') + 1));
            int baixado = 0;

            StringBuffer erros = new StringBuffer(1);

            while (baixado < num_erros) {
                erros.append(Http.readLine(in)).append("\n");
                baixado++;
            }
            Recados.setCurrent(new Alert("Erro", erros.toString(), null, AlertType.ERROR), this);
            return;
        }

        Recados.setCurrent(new Alert("Sucesso", verifica, null, AlertType.CONFIRMATION), Recados.getInstance().getAvancado());
    }

    public void requisicaoCancelada() {
        Recados.setCurrent(this);
    }

    public void falhaRequisiçao(String mensagem) {
         Recados.setCurrent(new Alert("Erro", mensagem, null, AlertType.ERROR),this);
    }
}
